<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /usr/include/i386/limits.h</title>
  </head>
  <body>
    <h1>File: /usr/include/i386/limits.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/*</span>
<a name="2" /><span class="True">       2:</span> <span class="k"> * Copyright (c) 1988, 1993</span>
<a name="3" /><span class="True">       3:</span> <span class="k"> *    The Regents of the University of California.  All rights reserved.</span>
<a name="4" /><span class="True">       4:</span> <span class="k"> *</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> * Redistribution and use in source and binary forms, with or without</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> * modification, are permitted provided that the following conditions</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> * are met:</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> * 1. Redistributions of source code must retain the above copyright</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> *    notice, this list of conditions and the following disclaimer.</span>
<a name="10" /><span class="True">      10:</span> <span class="k"> * 2. Redistributions in binary form must reproduce the above copyright</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> *    notice, this list of conditions and the following disclaimer in the</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> *    documentation and/or other materials provided with the distribution.</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> * 3. All advertising materials mentioning features or use of this software</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> *    must display the following acknowledgement:</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> *    This product includes software developed by the University of</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> *    California, Berkeley and its contributors.</span>
<a name="17" /><span class="True">      17:</span> <span class="k"> * 4. Neither the name of the University nor the names of its contributors</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> *    may be used to endorse or promote products derived from this software</span>
<a name="19" /><span class="True">      19:</span> <span class="k"> *    without specific prior written permission.</span>
<a name="20" /><span class="True">      20:</span> <span class="k"> *</span>
<a name="21" /><span class="True">      21:</span> <span class="k"> * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS&apos;&apos; AND</span>
<a name="22" /><span class="True">      22:</span> <span class="k"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
<a name="23" /><span class="True">      23:</span> <span class="k"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
<a name="24" /><span class="True">      24:</span> <span class="k"> * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE</span>
<a name="25" /><span class="True">      25:</span> <span class="k"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
<a name="26" /><span class="True">      26:</span> <span class="k"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
<a name="27" /><span class="True">      27:</span> <span class="k"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
<a name="28" /><span class="True">      28:</span> <span class="k"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
<a name="29" /><span class="True">      29:</span> <span class="k"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
<a name="30" /><span class="True">      30:</span> <span class="k"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
<a name="31" /><span class="True">      31:</span> <span class="k"> * SUCH DAMAGE.</span>
<a name="32" /><span class="True">      32:</span> <span class="k"> *</span>
<a name="33" /><span class="True">      33:</span> <span class="k"> *    @(#)limits.h    8.3 (Berkeley) 1/4/94</span>
<a name="34" /><span class="True">      34:</span> <span class="k"> */</span>
<a name="35" /><span class="True">      35:</span> 
<a name="36" /><span class="True">      36:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="macros_noref.html#_X0kzODZfTElNSVRTX0hfXzA_"><span class="b">_I386_LIMITS_H_</span></a>
<a name="37" /><span class="True">      37:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_X0kzODZfTElNSVRTX0hfXzA_"><span class="b">_I386_LIMITS_H_</span></a>
<a name="38" /><span class="True">      38:</span> 
<a name="39" /><span class="True">      39:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">sys</span><span class="f">/</span><span class="b">cdefs</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="40" /><span class="True">      40:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">i386</span><span class="f">/</span><span class="b">_limits</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="41" /><span class="True">      41:</span> 
<a name="42" /><span class="True">      42:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_Q0hBUl9CSVRfMA__"><span class="b">CHAR_BIT</span></a>    <span class="c">8</span>        <span class="k">/* number of bits in a char */</span>
<a name="43" /><span class="True">      43:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_TUJfTEVOX01BWF8w"><span class="b">MB_LEN_MAX</span></a>    <span class="c">6</span>        <span class="k">/* Allow 31 bit UTF2 */</span>
<a name="44" /><span class="True">      44:</span> 
<a name="45" /><span class="True">      45:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">_ANSI_SOURCE</span><span class="f">)</span> <span class="f">&amp;&amp;</span> <span class="f">(</span><span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">_POSIX_C_SOURCE</span><span class="f">)</span> <span class="f">||</span> <span class="b">defined</span><span class="f">(</span><a href="macros_ref.html#_X0RBUldJTl9DX1NPVVJDRV8w"><span class="b">_DARWIN_C_SOURCE</span></a><span class="f">)</span><span class="f">)</span>
<a name="46" /><span class="True">      46:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_Q0xLX1RDS18w"><span class="b">CLK_TCK</span></a>        <a href="macros_noref.html#_X19EQVJXSU5fQ0xLX1RDS18w"><span class="b">__DARWIN_CLK_TCK</span></a>    <span class="k">/* ticks per second */</span>
<a name="47" /><span class="True">      47:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !_ANSI_SOURCE &amp;&amp; (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */</span>
<a name="48" /><span class="True">      48:</span> 
<a name="49" /><span class="True">      49:</span> <span class="k">/*</span>
<a name="50" /><span class="True">      50:</span> <span class="k"> * According to ANSI (section 2.2.4.2), the values below must be usable by</span>
<a name="51" /><span class="True">      51:</span> <span class="k"> * #if preprocessing directives.  Additionally, the expression must have the</span>
<a name="52" /><span class="True">      52:</span> <span class="k"> * same type as would an expression that is an object of the corresponding</span>
<a name="53" /><span class="True">      53:</span> <span class="k"> * type converted according to the integral promotions.  The subtraction for</span>
<a name="54" /><span class="True">      54:</span> <span class="k"> * INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an</span>
<a name="55" /><span class="True">      55:</span> <span class="k"> * unsigned int for 32-bit two&apos;s complement ANSI compilers (section 3.1.3.2).</span>
<a name="56" /><span class="True">      56:</span> <span class="k"> * These numbers work for pcc as well.  The UINT_MAX and ULONG_MAX values</span>
<a name="57" /><span class="True">      57:</span> <span class="k"> * are written as hex so that GCC will be quiet about large integer constants.</span>
<a name="58" /><span class="True">      58:</span> <span class="k"> */</span>
<a name="59" /><span class="True">      59:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_U0NIQVJfTUFYXzA_"><span class="b">SCHAR_MAX</span></a>    <span class="c">127</span>        <span class="k">/* min value for a signed char */</span>
<a name="60" /><span class="True">      60:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_U0NIQVJfTUlOXzA_"><span class="b">SCHAR_MIN</span></a>    <span class="f">(</span><span class="f">-</span><span class="c">128</span><span class="f">)</span>        <span class="k">/* max value for a signed char */</span>
<a name="61" /><span class="True">      61:</span> 
<a name="62" /><span class="True">      62:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_ref.html#_VUNIQVJfTUFYXzA_"><span class="b">UCHAR_MAX</span></a>    <span class="c">255</span>        <span class="k">/* max value for an unsigned char */</span>
<a name="63" /><span class="True">      63:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_Q0hBUl9NQVhfMA__"><span class="b">CHAR_MAX</span></a>    <span class="c">127</span>        <span class="k">/* max value for a char */</span>
<a name="64" /><span class="True">      64:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_Q0hBUl9NSU5fMA__"><span class="b">CHAR_MIN</span></a>    <span class="f">(</span><span class="f">-</span><span class="c">128</span><span class="f">)</span>        <span class="k">/* min value for a char */</span>
<a name="65" /><span class="True">      65:</span> 
<a name="66" /><span class="True">      66:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_VVNIUlRfTUFYXzA_"><span class="b">USHRT_MAX</span></a>    <span class="c">65535</span>        <span class="k">/* max value for an unsigned short */</span>
<a name="67" /><span class="True">      67:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_U0hSVF9NQVhfMA__"><span class="b">SHRT_MAX</span></a>    <span class="c">32767</span>        <span class="k">/* max value for a short */</span>
<a name="68" /><span class="True">      68:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_U0hSVF9NSU5fMA__"><span class="b">SHRT_MIN</span></a>    <span class="f">(</span><span class="f">-</span><span class="c">32768</span><span class="f">)</span>    <span class="k">/* min value for a short */</span>
<a name="69" /><span class="True">      69:</span> 
<a name="70" /><span class="True">      70:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_VUlOVF9NQVhfMA__"><span class="b">UINT_MAX</span></a>    <span class="c">0xffffffff</span>    <span class="k">/* max value for an unsigned int */</span>
<a name="71" /><span class="True">      71:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_ref.html#_SU5UX01BWF8w"><span class="b">INT_MAX</span></a>        <span class="c">2147483647</span>    <span class="k">/* max value for an int */</span>
<a name="72" /><span class="True">      72:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_SU5UX01JTl8w"><span class="b">INT_MIN</span></a>        <span class="f">(</span><span class="f">-</span><span class="c">2147483647</span><span class="f">-</span><span class="c">1</span><span class="f">)</span>    <span class="k">/* min value for an int */</span>
<a name="73" /><span class="True">      73:</span> 
<a name="74" /><span class="False">      74:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__LP64__</span>
<a name="75" /><span class="False">      75:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_VUxPTkdfTUFYXzA_"><span class="b">ULONG_MAX</span></a>    <span class="c">0xffffffffffffffffUL</span>    <span class="k">/* max unsigned long */</span>
<a name="76" /><span class="False">      76:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_ref.html#_TE9OR19NQVhfMA__"><span class="b">LONG_MAX</span></a>    <span class="c">0x7fffffffffffffffL</span>    <span class="k">/* max signed long */</span>
<a name="77" /><span class="False">      77:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_ref.html#_TE9OR19NSU5fMA__"><span class="b">LONG_MIN</span></a>    <span class="f">(</span><span class="f">-</span><span class="c">0x7fffffffffffffffL</span><span class="f">-</span><span class="c">1</span><span class="f">)</span> <span class="k">/* min signed long */</span>
<a name="78" /><span class="True">      78:</span> <span class="f">#</span><span class="n">else</span> <span class="k">/* !__LP64__ */</span>
<a name="79" /><span class="True">      79:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_VUxPTkdfTUFYXzA_"><span class="b">ULONG_MAX</span></a>    <span class="c">0xffffffffUL</span>    <span class="k">/* max unsigned long */</span>
<a name="80" /><span class="True">      80:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_ref.html#_TE9OR19NQVhfMA__"><span class="b">LONG_MAX</span></a>    <span class="c">2147483647L</span>    <span class="k">/* max signed long */</span>
<a name="81" /><span class="True">      81:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_ref.html#_TE9OR19NSU5fMA__"><span class="b">LONG_MIN</span></a>    <span class="f">(</span><span class="f">-</span><span class="c">2147483647L</span><span class="f">-</span><span class="c">1</span><span class="f">)</span> <span class="k">/* min signed long */</span>
<a name="82" /><span class="True">      82:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* __LP64__ */</span>
<a name="83" /><span class="True">      83:</span> 
<a name="84" /><span class="True">      84:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_VUxMT05HX01BWF8w"><span class="b">ULLONG_MAX</span></a>    <span class="c">0xffffffffffffffffULL</span>    <span class="k">/* max unsigned long long */</span>
<a name="85" /><span class="True">      85:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_TExPTkdfTUFYXzA_"><span class="b">LLONG_MAX</span></a>    <span class="c">0x7fffffffffffffffLL</span>    <span class="k">/* max signed long long */</span>
<a name="86" /><span class="True">      86:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_TExPTkdfTUlOXzA_"><span class="b">LLONG_MIN</span></a>    <span class="f">(</span><span class="f">-</span><span class="c">0x7fffffffffffffffLL</span><span class="f">-</span><span class="c">1</span><span class="f">)</span> <span class="k">/* min signed long long */</span>
<a name="87" /><span class="True">      87:</span> 
<a name="88" /><span class="True">      88:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">_ANSI_SOURCE</span><span class="f">)</span>
<a name="89" /><span class="False">      89:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__LP64__</span>
<a name="90" /><span class="False">      90:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_TE9OR19CSVRfMA__"><span class="b">LONG_BIT</span></a>    <span class="c">64</span>
<a name="91" /><span class="True">      91:</span> <span class="f">#</span><span class="n">else</span> <span class="k">/* !__LP64__ */</span>
<a name="92" /><span class="True">      92:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_TE9OR19CSVRfMA__"><span class="b">LONG_BIT</span></a>    <span class="c">32</span>
<a name="93" /><span class="True">      93:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* __LP64__ */</span>
<a name="94" /><span class="True">      94:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_U1NJWkVfTUFYXzA_"><span class="b">SSIZE_MAX</span></a>    <a href="macros_ref.html#_TE9OR19NQVhfMA__"><span class="b">LONG_MAX</span></a>    <span class="k">/* max value for a ssize_t */</span>
<a name="95" /><span class="True">      95:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_V09SRF9CSVRfMA__"><span class="b">WORD_BIT</span></a>    <span class="c">32</span>
<a name="96" /><span class="True">      96:</span> 
<a name="97" /><span class="True">      97:</span> <span class="f">#</span><span class="n">if</span> <span class="f">(</span><span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">_POSIX_C_SOURCE</span><span class="f">)</span> <span class="f">&amp;&amp;</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">_XOPEN_SOURCE</span><span class="f">)</span><span class="f">)</span> <span class="f">||</span> <span class="b">defined</span><span class="f">(</span><a href="macros_ref.html#_X0RBUldJTl9DX1NPVVJDRV8w"><span class="b">_DARWIN_C_SOURCE</span></a><span class="f">)</span>
<a name="98" /><span class="True">      98:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_U0laRV9UX01BWF8w"><span class="b">SIZE_T_MAX</span></a>    <a href="macros_noref.html#_VUxPTkdfTUFYXzA_"><span class="b">ULONG_MAX</span></a>    <span class="k">/* max value for a size_t */</span>
<a name="99" /><span class="True">      99:</span> 
<a name="100" /><span class="True">     100:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_VVFVQURfTUFYXzA_"><span class="b">UQUAD_MAX</span></a>    <a href="macros_noref.html#_VUxMT05HX01BWF8w"><span class="b">ULLONG_MAX</span></a>
<a name="101" /><span class="True">     101:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_UVVBRF9NQVhfMA__"><span class="b">QUAD_MAX</span></a>    <a href="macros_noref.html#_TExPTkdfTUFYXzA_"><span class="b">LLONG_MAX</span></a>
<a name="102" /><span class="True">     102:</span> <span class="f">#</span><span class="n">define</span>    <a href="macros_noref.html#_UVVBRF9NSU5fMA__"><span class="b">QUAD_MIN</span></a>    <a href="macros_noref.html#_TExPTkdfTUlOXzA_"><span class="b">LLONG_MIN</span></a>
<a name="103" /><span class="True">     103:</span> 
<a name="104" /><span class="True">     104:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* (!_POSIX_C_SOURCE &amp;&amp; !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */</span>
<a name="105" /><span class="True">     105:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !_ANSI_SOURCE */</span>
<a name="106" /><span class="True">     106:</span> 
<a name="107" /><span class="True">     107:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _I386_LIMITS_H_ */</span>
<a name="108" /><span class="True">     108:</span> </pre>
  </body>
</html>
